package test.n00000;

public class Problem00070 {
    public static void main(String[] args) {
        println(123);
        println(-123);
        println(1534236469);
    }

    public static void println(int x) {
        Solution ss = new Solution();
        System.out.println(x + "," + ss.reverse(x));
    }

    public static class Solution {

        /**
         * 给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
         * <p>
         * 如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ，就返回 0。
         * <p>
         * 假设环境不允许存储 64 位整数（有符号或无符号）。
         * <p>
         * 来源：力扣（LeetCode）
         * 链接：https://leetcode-cn.com/problems/reverse-integer
         * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
         *
         * @param x
         * @return
         */
        public int reverse(int x) {

            int r = 0;
            while (x != 0) {
                if (r < Integer.MIN_VALUE / 10 || r > Integer.MAX_VALUE / 10) {
                    return 0;
                }

                r = r * 10 + x % 10;
                x = x / 10;
            }
            return r;
        }
    }
}
